package com.sugon.modules.device.model.vo;

import com.sugon.entity.DevMaintenanceTicketItemEntity;
import com.sugon.modules.device.consts.DevMaintenancePlanFreType;
import lombok.Data;

/**
 * @author ： YuXD
 * @description： 设备维护计划明细详情VO，包含设备维护项详情
 * @date ： 2020-08-12 16:10
 * @version: 1.0
 */
@Data
public class DevMaintenanceTicketItemDetailVO extends DevMaintenanceTicketItemEntity {

    /**
     * 车间ID
     */
    private String workshop;
    /**
     * 人次
     */
    private Integer perEv;
    /**
     * 选项备注
     */
    private String remark;
    /**
     * 选项类型
     */
    private String type;
    /**
     * 选项名称
     */
    private String name;
    /**
     * 检查时间
     */
    private Integer checkType;
    /**
     * 检查标准 内容
     */
    private String checkSt;

    private String checkContent;

    private String materialRequ;

    /**
     * 检查方法-测量方法2020.4.9
     */
    private String methodType;
    /**
     * 检测工具 2020.4.9
     */
    private String checkTool;
    /**
     * 设备状态 2020.4.9
     */
    private Integer devStatus;
    /**
     * 属性 1 S:安全 2 E:环保 3 C:委外
     */
    private Integer attribute;

    /**
     * 1:'预测性',2:'预防性'
     */
    private Integer mainType;
    /**
     * 生产时间
     */
    private Integer checkDatePrud;
    /**
     * 非生产时间
     */
    private Integer checkDateUprud;
    /**
     * 实施频率 1每周 2.每两周 3.每月 4.每两月 5.每季 6.每半年 7.一年
     */
    private Integer freRate;

    /**
     * 获取设备维护间隔天数
     *
     * @return
     */
    public int getDevMaintenanceIntervalDays() {
        int days = 0;
        if (this.freRate != null) {
            switch (this.freRate) {
                case DevMaintenancePlanFreType.WEEKLY:
                    days = 7;
                    break;
                case DevMaintenancePlanFreType.FORTNIGHT:
                    days = 14;
                    break;
                case DevMaintenancePlanFreType.MONTH:
                    days = 30;
                    break;
                case DevMaintenancePlanFreType.QUARTER:
                    days = 90;
                    break;
                case DevMaintenancePlanFreType.HALF_YEAR:
                    days = 183;
                    break;
                case DevMaintenancePlanFreType.YEAR:
                    days = 365;
                    break;
                default:
            }
        }
        return days;
    }

    public String getName() {
        return name == null ? "暂无" : name;
    }

    public String getMethodType() {
        return methodType == null ? this.getStep() : methodType;
    }

    public String getCheckSt() {
        return checkSt == null ? this.getProblemDesc() : checkSt;
    }
}
